

using System;
using System.Text;
using System.Collections.Generic;
using NHibernate;
using NHibernate.Cfg;
using NHibernate.Criterion;
using NHibernate.Exceptions;

using SpotifyGenNHibernate.EN.Spotify;
using SpotifyGenNHibernate.CAD.Spotify;

namespace SpotifyGenNHibernate.CEN.Spotify
{
        public partial class CancionCEN
        {
            private ICancionCAD _ICancionCAD;

            public CancionCEN(ICancionCAD _ICancionCAD)
            {
                    this._ICancionCAD = _ICancionCAD;
            }

            public int CrearCancion (String p_Titulo, int p_Duracion, double p_Precio, int p_Popularidad, int p_album)
            {
                    CancionEN cancionEN = null;
                    int oid;

                    //Initialized CancionEN
                    cancionEN = new CancionEN ();
                    cancionEN.Titulo = p_Titulo;
                    cancionEN.Duracion = p_Duracion;
                    cancionEN.Precio = p_Precio;
                    cancionEN.Popularidad = p_Popularidad;
                    if (p_album != -1) {
                            cancionEN.Album = new SpotifyGenNHibernate.EN.Spotify.AlbumEN ();
                            cancionEN.Album.IdAlbum = p_album;
                    }
                    //Call to CancionCAD

                    oid = _ICancionCAD.CrearCancion (cancionEN);
                    return oid;
            }

            public CancionEN ObtenerDatos (int IdCancion)
            {
                    CancionEN cancionEN = null;

                    cancionEN = _ICancionCAD.ObtenerDatos (IdCancion);
                    return cancionEN;
            }

            public void ModificarDatos (int p_Cancion_OID, String p_Titulo, int p_Duracion, double p_Precio, int p_Popularidad)
            {
                    CancionEN cancionEN = null;

                    //Initialized CancionEN
                    cancionEN = new CancionEN ();
                    cancionEN.IdCancion = p_Cancion_OID;
                    cancionEN.Titulo = p_Titulo;
                    cancionEN.Duracion = p_Duracion;
                    cancionEN.Precio = p_Precio;
                    cancionEN.Popularidad = p_Popularidad;
                    //Call to CancionCAD

                    _ICancionCAD.ModificarDatos (cancionEN);
            }

            public IList<CancionEN> ObtenerCanciones() 
            {
                return _ICancionCAD.ObtenerCanciones();
            }
        }
}
